public class Rational {
    int numerator = 1; //分子
    int denominator = 1;//分母
    void setNumerator(int a) {//设置分子
        int c = f(Math.abs(a),denominator);//计算最大公约数
	numerator = a/c;
	denominator = denominator/c;
	if(numerator<0 && denominator<0) {
	    numerator = -numerator;
	    denominator = -denominator;
	}
    }
    void setDenominator(int b) {//设置分母
	int c=f(numerator,Math.abs(b));//计算最大公约数
	numerator = numerator/c;
	denominator = b/c;
	if(numerator<0&&denominator<0) {
	    numerator = -numerator;
	    denominator = -denominator;
	}
    }
    int getNumerator() {
	return numerator;
    }
    int getDenominator(){
	return denominator;
    }
    int f(int a, int b) {//求a和b的最大公约数
	if(a==0) return 1;
	if(a<b) {
	    int c=a;
	    a=b;
	    b=c;
	}
	int r=a&b;
	while(r!=0) {
	    a=b;
	    b=r;
	    r=a%b;
	}
	return b;
    }
    Rational add(Rational r) {//加法运算
	int a=r.getNumerator();//返回有理数r的分子
	int b=r.getDemominator();//返回有理数r的分母 
	int numNumerator = numerator*b+denominator*a;//计算出新分子
	int newDenominator=denominator*b;
	Rational result = new Rational();
	result.setNumerator(newNumerator);
	result.setDenominator(newDenominator);
	return result;
    }
    Rational muti(Rational r) ://乘法运算
	int a=r.getNumerator();
	int b=r.getDenominator();
	int newNumerator = numerator*a;
	int newDenominator = denominator*b;
	Rational result = new Rational();
	reult.setNumerator(newNumerator);
	reult.setDenominator(newDenominator);
	return result;
    }
    Rational div(Rational r) {//除法运算
	int a = r.getNumerator();
	int b = r.getDenominator();
	int newNumerator = numerator*b;
	int newDenominator = denominator*a;
	Rational result = new Rational();
	result.setNumerator(newNumerator);
	result.setDenominator(newDenominator);
	return result;
    }
}

	result.setDenominator(newDenominator);
	return result;
    }
Rational sub(Rational r) {//减法运算
	int a=r.getNumerator();
	int b=r.getDenominator();
	int newNumerator = numerator*b-denominator*a;
	int newDenominator = denominator*b;
	Rational result = new Rational();
	result.setNumerator(newNumerator);
	result.setDe
	}
